package com.xcm.dao;

import com.github.pagehelper.Page;
import com.xcm.model.dto.FirmWareListDTO;
import com.xcm.model.vo.DeviceInfoListVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @ClassName FirmWareMapper
 * @Description 固件管理
 * @Author HanQinrui
 * @Date 2018/5/7 10:22
 * @Version 1.0
 **/
public interface FirmWareMapper {
    /**
     * 固件列表
     * @return
     */
    Page<FirmWareListDTO> listByPage();

    /**
     * 查询所有固件版本号
     * @return
     */
    List<String> listAllFirmWareVersionCode();

    /**
     * 获取更新固件下终端列表
     * @param sysVersion 固件版本号
     * @param deviceStatus 在线状态 0.在线; 1.离线
     * @param deviceModel 机型
     * @param groupCode 分组编码
     * @param province 省
     * @param city 市
     * @param county 区
     * @param deviceUpgradeId 固件ID
     * @return
     */
    Page<DeviceInfoListVO> updateFirmWareListByPage(@Param("sysVersion") String sysVersion, @Param("deviceStatus") String deviceStatus,
                                                    @Param("deviceModel") String deviceModel, @Param("groupCode") String groupCode,
                                                    @Param("province") String province, @Param("city") String city,
                                                    @Param("county") String county, @Param("deviceUpgradeId")String deviceUpgradeId);

    /**
     * 根据查询条件获取终端总数
     * @param deviceStatus 在线状态 0.在线; 1.离线
     * @param sysVersion  固件版本号
     * @param deviceModel 机型
     * @param groupCode   分组编码
     * @param province    省
     * @param city        市
     * @param area        区
     * @return
     */
    Long getDeviceOnlineCount(@Param("deviceStatus") int deviceStatus, @Param("sysVersion") String sysVersion,
                              @Param("deviceModel") String deviceModel, @Param("groupCode") String groupCode,
                              @Param("province") String province, @Param("city") String city, @Param("area") String area);
}
